package com.wolfword.crawler.server.service;

import java.util.List;
import java.util.Map;

import com.wolfword.crawler.server.entity.RootUrlInfoEntity;

/**
 * root_url_info
 *
 * @author Server Zhang
 * @date 2018-01-11 10:54:52
 */
public interface RootUrlInfoService {

            /**
        * 插入数据
        *
        * @param entity 实体类
        * @return 主键值
        */
    long insert(RootUrlInfoEntity entity);
    

    /**
     * 批量插入数据
     *
     * @param list 实体类
     */
    void batchInsert(List<RootUrlInfoEntity> list);

    /**
     * 根据主键更新数据 id
     *
     * @param entity 新数据
     */
    Integer updateByPrimary(RootUrlInfoEntity entity);

    /**
     * 根据主键获取数据 id
     *
     * @param entity 查询条件
     * @return 查询结果
     */
    RootUrlInfoEntity getByPrimary(RootUrlInfoEntity entity);

    /**
     * 根据查询条件获取一条记录
     *
     * @param conditions 查询条件
     * @return 查询结果
     */
    RootUrlInfoEntity getOne(Map<String, Object> conditions);

    /**
     * 根据查询条件查询
     *
     * @param conditions 查询条件
     * @return 结果集
     */
    List<RootUrlInfoEntity> queryList(Map<String, Object> conditions);

    /**
     * 查询所有数据
     *
     * @return 结果集
     */
    List<RootUrlInfoEntity> getAll();

    /**
	 * list
	 * @param url
	 * @param containStr
	 * @param status
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 * @author ServerZhang
	 * @date 2018年1月17日
	 */
	List<RootUrlInfoEntity> list(String url, String orgName, String containStr, Integer status,
			Integer pageIndex, Integer pageSize);

	/**
	 * 添加到任务
	 * @param ids
	 * @author ServerZhang
	 * @date 2018年1月17日
	 */
	void add2task(List<Long> ids);

	/**
	 * 插入并添加到任务
	 * @param entity
	 * @author ServerZhang
	 * @date 2018年1月24日
	 */
	void insertAnd2Task(RootUrlInfoEntity entity);

	/**
	 * 将根网址表中已添加到任务且所有任务都已经完成的的数据修改状态为完成
	 * @author ServerZhang
	 * @date 2018年1月25日
	 */
	void rootUrlStatistic();
}
